<?php

namespace app\common\services;

use app\common\repositories\users\UsersMessageRepository;

class MessageService
{

    /**
     * 发送消息
     *
     * @param string $messageType 消息类型
     * @param array $data 消息数据
     */
    public static function sendMessage(int $propertyId, string $messageType, array $data = [])
    {
        switch ($messageType) {
            case 'energy_fee_deduction': ## 能源设备预付费扣费消息
                $energyId = $data['energy_id']; ## 设备 ID  待处理 用来 多用户发送信息
                $energyNo = $data['energy_no']; ## 设备 编号
                $energyName = $data['energy_name']; ## 安装地址
                $amount = $data['fee_deduction']; ## 扣费金额
                $afterChange = $data['after_change']; ## 扣费账户余额

                $content = '<div style="font-size: 14px;">';
                $content .= '设备消费提醒';
                $content .= '安装地址：' . $energyName . '<br />';
                $content .= '设备编号：' . $energyNo . '<br />';
                $content .= '消费金额：' . $amount . '元<br />';
                $content .= '账户余额：' . $afterChange . '元<br />';
                $content .= '</div>';
                /** @var UsersMessageRepository $usersMessageRepository */
                $usersMessageRepository = app()->make(UsersMessageRepository::class);
                $usersMessageRepository->addLog($propertyId, 1, 'energy_meter', [
                    'message_title' => '设备消费提醒',
                    'content' => $content,
                ]);
                break;
            case 'energy_balance_recharge': ## 能源设备充值消息
                $energyId = $data['energy_id']; ## 设备 ID 待处理 用来 多用户发送信息
                $energyNo = $data['energy_no']; ## 设备 编号
                $energyName = $data['energy_name']; ## 安装地址
                $amount = $data['recharge_amount']; ## 充值金额
                $afterChange = $data['after_change']; ## 充值后账户余额

                $content = '<div style="font-size: 14px;">';
                $content .= '设备充值提醒';
                $content .= '安装地址：' . $energyName . '<br />';
                $content .= '设备编号：' . $energyNo . '<br />';
                $content .= '充值金额：' . $amount . '元<br />';
                $content .= '账户余额：' . $afterChange . '元<br />';
                $content .= '</div>';
                /** @var UsersMessageRepository $usersMessageRepository */
                $usersMessageRepository = app()->make(UsersMessageRepository::class);
                $usersMessageRepository->addLog($propertyId, 1, 'energy_meter', [
                    'message_title' => '设备充值提醒',
                    'content' => $content,
                ]);
                break;
            case 'energy_off': ## 设备账户余额不足停机
                $energyId = $data['energy_id']; ## 设备 ID 待处理 用来 多用户发送信息
                $energyNo = $data['energy_no']; ## 设备 编号
                $energyName = $data['energy_name']; ## 安装地址
                $afterChange = $data['after_change']; ## 变动后账户余额

                $content = '<div style="font-size: 14px;">';
                $content .= '账户余额不足停机提醒<br />';
                $content .= '安装地址：' . $energyName . '<br />';
                $content .= '设备编号：' . $energyNo . '<br />';
                $content .= '当前余额：' . $afterChange . '元<br />';
                $content .= '请尽快充值，防止影响您的使用！';
                $content .= '</div>';
                /** @var UsersMessageRepository $usersMessageRepository */
                $usersMessageRepository = app()->make(UsersMessageRepository::class);
                $usersMessageRepository->addLog($propertyId, 1, 'energy_meter', [
                    'message_title' => '设备充值提醒',
                    'content' => $content,
                ]);
                break;

        }
    }

}